Namespace("SCRL.AJAX");

(function($) {
    SCRL.AJAX.Utils = {
        SERVLET_URL: "do.act?",
        servletRequest: function(p) {
            var parameters = $.extend({
                url: this.SERVLET_URL,
                action: '',
                method: 'GET',
                success: $.noop,
                error: $.noop,
                data: {},
                async: true,
                wrapResponseHandlers: true
            }, p);
            parameters.url = parameters.url.replace("?", "");
            $(document).trigger("servlet-request-start");
            var xhr = $.ajax({
                url: parameters.url,
                data: $.extend({
                    action: parameters.action
                }, parameters.data),
                success: parameters.wrapResponseHandlers ? this.wrapResponseHandler(parameters.success) : parameters.success,
                error: parameters.wrapResponseHandlers ? this.wrapResponseHandler(parameters.error) : parameters.error,
                type: parameters.method,
                async: parameters.async
            });
            if ( parameters.timeout ) {
                setTimeout(function() {
                    if ( xhr && xhr.readyState < 2 ) {
                        xhr.abort();
                        parameters.error && parameters.error();
                    }
                }, parameters.timeout);
            }
        }
    }
})(jQuery);